package com.netposa.datawarehouse.aggregator.web.model;

import com.netposa.vdt.pccclient.common.DetectResult;
import java.beans.ConstructorProperties;
import java.io.Serializable;

public class SessionDetection implements Serializable {
   private static final long serialVersionUID = -6759236850717377520L;
   private SearchDataType searchDataType;
   private DetectResult meta;
   private Boolean featureType;

   public SearchDataType getSearchDataType() {
      return this.searchDataType;
   }

   public DetectResult getMeta() {
      return this.meta;
   }

   public Boolean getFeatureType() {
      return this.featureType;
   }

   public void setSearchDataType(SearchDataType searchDataType) {
      this.searchDataType = searchDataType;
   }

   public void setMeta(DetectResult meta) {
      this.meta = meta;
   }

   public void setFeatureType(Boolean featureType) {
      this.featureType = featureType;
   }

   public boolean equals(Object o) {
      if (o == this) {
         return true;
      } else if (!(o instanceof SessionDetection)) {
         return false;
      } else {
         SessionDetection other = (SessionDetection)o;
         if (!other.canEqual(this)) {
            return false;
         } else {
            label47: {
               Object this$searchDataType = this.getSearchDataType();
               Object other$searchDataType = other.getSearchDataType();
               if (this$searchDataType == null) {
                  if (other$searchDataType == null) {
                     break label47;
                  }
               } else if (this$searchDataType.equals(other$searchDataType)) {
                  break label47;
               }

               return false;
            }

            Object this$meta = this.getMeta();
            Object other$meta = other.getMeta();
            if (this$meta == null) {
               if (other$meta != null) {
                  return false;
               }
            } else if (!this$meta.equals(other$meta)) {
               return false;
            }

            Object this$featureType = this.getFeatureType();
            Object other$featureType = other.getFeatureType();
            if (this$featureType == null) {
               if (other$featureType != null) {
                  return false;
               }
            } else if (!this$featureType.equals(other$featureType)) {
               return false;
            }

            return true;
         }
      }
   }

   protected boolean canEqual(Object other) {
      return other instanceof SessionDetection;
   }

   public int hashCode() {
      
      int result = 1;
      Object $searchDataType = this.getSearchDataType();
      result = result * 59 + ($searchDataType == null ? 43 : $searchDataType.hashCode());
      Object $meta = this.getMeta();
      result = result * 59 + ($meta == null ? 43 : $meta.hashCode());
      Object $featureType = this.getFeatureType();
      result = result * 59 + ($featureType == null ? 43 : $featureType.hashCode());
      return result;
   }

   public String toString() {
      return "SessionDetection(searchDataType=" + this.getSearchDataType() + ", meta=" + this.getMeta() + ", featureType=" + this.getFeatureType() + ")";
   }

   @ConstructorProperties({"searchDataType", "meta", "featureType"})
   public SessionDetection(SearchDataType searchDataType, DetectResult meta, Boolean featureType) {
      this.searchDataType = searchDataType;
      this.meta = meta;
      this.featureType = featureType;
   }
}
